import { AxiosTransformer } from '../types'

/**
 * 描述 对发起请求，执行相应数据res之前，做出处理
 * @param {any} data
 * @param {any} headers
 * @param {AxiosTransformer|AxiosTransformer[]} fns 发起请求，收到相应数据后要进一步做处理的函数
 * @returns {any}
 */
export default function transform(
  data: any,
  headers: any,
  fns: AxiosTransformer | AxiosTransformer[]
) {
  if (!fns) {
    return data
  }
  if (!Array.isArray(fns)) {
    fns = [fns]
  }
  fns.forEach((fn) => {
    data = fn(data, headers)
  })
  return data
}
